package com.lancoo.ccas52.pojo.vo;

import com.lancoo.ccas52.entity.CourseWeek;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @ClassName CoursePlanDto
 * @Description 课程 教学计划数据封装
 * @Author quin
 * @Date 2023/2/21 9:56
 */
@Data
public class  CoursePlanDto implements Serializable {
    private Long courseId;

    private Integer taskId;

    @ApiModelProperty("学院id  开课单位")
    private String collegeId;

    private String collegeName;

    private String courseName;

    private String courseTypeId;

    @ApiModelProperty("课程类别")
    private String courseType;

    @ApiModelProperty("课程性质 1必修  2选修")
    private Integer courseNature;

    @ApiModelProperty("专业性质，1:公共课，2:专业课")
    private Integer majorProp;

    @ApiModelProperty("课程代码")
    private String courseCode;

    @ApiModelProperty("课程学分")
    private Double credit;

    @ApiModelProperty("总学时")
    private Integer totalHour;

    @ApiModelProperty("讲授学时")
    private Integer lectureHour;

    @ApiModelProperty("实验学时")
    private Integer experimentalHour;

    @ApiModelProperty("上机学时")
    private Integer computerHour;

    @ApiModelProperty("其他学时")
    private Integer otherHour;

    @Deprecated
    @ApiModelProperty("所属教学计划id")
    private Long teachingPlanId;

    @Deprecated
    private String gradeId;

    @Deprecated
    @ApiModelProperty("所属年级")
    private String gradeName;

    @Deprecated
    @ApiModelProperty("基础平台专业id")
    private String majorId;

    @Deprecated
    @ApiModelProperty("基础平台专业名字")
    private String majorName;

    @Deprecated
    @ApiModelProperty("教学计划学院名称")
    private String planCollegeName;

    @ApiModelProperty("考核方式")
    private String assessmentId;

    @ApiModelProperty("考核方式名字")
    private String assessmentName;

    @ApiModelProperty("分班标识 1不可拆班 2可拆班")
    private Integer uniqueShiftSign;

    @ApiModelProperty("关联表id")
    private Long id;

    @Deprecated
    @ApiModelProperty("方向名字")
    private String majorVersionName;

    @ApiModelProperty("修读性质 1主 2辅修")
    private Integer studyNature;

    @ApiModelProperty("1待设置 2已设置")
    private Integer state;

    @ApiModelProperty("上课人数")
    private Integer studentNum;
    @ApiModelProperty("正常修读人数")
    private Integer studentNumPlan;
    @ApiModelProperty("重修人数")
    private Integer studentNumRetake;

    @ApiModelProperty("预选上课人数")
    private Integer studentNumPre;

    @ApiModelProperty("教学班数量")
    private Integer classNum;

    @ApiModelProperty("课程参数设置")
    private List<CourseWeek> courseWeeks;

    @ApiModelProperty("0无需选课 1在线选课;2:分级教学 返回空表示没有教学班")
    private Integer teachingClassType;

    @ApiModelProperty("1:存在预选 2：不存在预选")
    private Integer isPreSelect;

    @ApiModelProperty("预选id")
    private Integer preSelectId;
}
